package health_system.health_system.dto;

import health_system.health_system.entity.Moment;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
import java.util.Set;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MomentCreateDTO {
    
    @NotNull(message = "User ID cannot be null")
    private Long userId;
    
    @Size(max = 1000, message = "Content cannot exceed 1000 characters")
    private String content;
    
    @Valid
    private List<MomentMediaCreateDTO> mediaList;
    
    @NotNull(message = "Visibility type cannot be null")
    private Moment.VisibilityType visibility;
    
    private Integer visibilityDuration = 0; // 0 means forever, otherwise days
    
    private Set<Long> visibleToUserIds; // Used when visibility is CUSTOM
} 